#pragma once
#include <string>
#include <set>
#include <map>

#include "external/cppjieba/Jieba.hpp"

class KeyWordProcessor {
public:
    KeyWordProcessor();

    void process(const std::string& chDir, const std::string& enDir);

private:
    // 加载停用词
    void load_stop_words(const std::string& filename, std::set<std::string>& stopWords);

    // 创建中文词典
    void create_cn_dict(const std::string& dir, const std::string& outfile);

    // 构建中文索引
    void build_cn_index(const std::string& dict, const std::string& index);

    // 创建英文词典
    void create_en_dict(const std::string& dir, const std::string& outfile);

    // 构建英文索引
    void build_en_index(const std::string& dict, const std::string& index);

    // 读取文件内容
    std::string read_file(const std::string& filename);

    // 英文预处理
    std::string preprocess_english(const std::string& text);

    cppjieba::Jieba m_tokenizer;
    std::set<std::string> m_enStopWords;
    std::set<std::string> m_chStopWords;
};


